const enUs = {
  required: ['{{attribute}} is required', { attribute: undefined }],
  json: {
    invalid: ['{{attribute}} must be json', { attribute: undefined }],
  },
  array: {
    invalid: ['{{attribute}} must be array', { attribute: undefined }],
    tooShort: [
      '{{attribute}} must has more than {{minItemLength}} array items',
      { attribute: undefined, minItemLength: undefined },
    ],
    tooLong: [
      '{{attribute}} must has less than {{maxItemLength}} array items',
      { attribute: undefined, maxItemLength: undefined },
    ],
    betweenLength: [
      '{{attribute}} must has between ${minItemLength} and ${minItemLength} array items',
      { attribute: undefined,  minItemLength: undefined, maxItemLength: undefined },
    ],
  },
  string: {
    invalid: ['{{attribute}} must be string', { attribute: undefined }],
    tooShort: [
      '{{attribute}} must has more than {{minLength}} characters',
      { attribute: undefined, minLength: undefined },
    ],
    tooLong: [
      '{{attribute}} must has less than {{maxLength}} characters',
      { attribute: undefined, maxLength: undefined },
    ],
    betweenLength: [
      '{{attribute}} must has between ${minLength} and ${maxLength} characters',
      { attribute: undefined,  minLength: undefined, maxLength: undefined },
    ],
  },
  range: {
    invalid: [
      '{{attribute}} must be in range of {{ranges}}',
      {
        attribute: undefined,
        ranges: (values: Array<string | number>) => JSON.stringify(values),
      }
    ],
  },
  number: {
    invalid: ['{{attribute}} must be number', { attribute: undefined }],
    integer: ['{{attribute}} must be integer', { attribute: undefined }],
    tooSmall: ['{{attribute}} must be larger than {{min}}', { attribute: undefined, min: undefined }],
    tooLarge: ['{{attribute}} must be smaller than {{max}}', { attribute: undefined, max: undefined }],
    between: ['{{attribute}} must be between {{min}} and {{max}}', { attribute: undefined, min: undefined, max: undefined }],
  },
  url: {
    invalid: ['{{attribute}} must be url', { attribute: undefined }],
  },
  boolean: {
    invalid: ['{{attribute}} must be boolean', { attribute: undefined }],
  },
  file: {
    invalid: ['{{attribute}} must be file', { attribute: undefined }],
    tooLarge: ['{{attribute}} size large than {{maxSize}}', { attribute: undefined, maxSize: undefined }],
    mimeType: ['{{attribute}} doesn\'t match given mime types', { attribute: undefined }],
  },
};

export default enUs;
